package flp.solvers.annealing;

import flp.solvers.*;

/**
 * Klasa zawierajaca ustawienia niezbedne do obliczen algorytmem symulowanego wyzarzania.
 * 
 * @author kuzu
 */
public class AnnealingSettings implements ISettings {
        
    /** Rozmiar pojedynczego layoutu. */
    private int layoutSize;
        
    /** Wartosc dla warunku stopu (temperatura bliska 0 z taką dokladnoscia).*/
    private double epsilon;
        
    /** Ilosc iteracji dla jednej temperatury. */
    private int iterations;

    /** Ilosc prob przeprowadzenia obliczen dla roznych layout`ow poczatkowych. */
    private int tries;
 
    /** Sposob chlodzenia. */
    private int cooling;

    
     /**
     * Konstruktor klasy AnnealingSettings
     * 
     * @param layoutSize Rozmiar pojedynczego Layoutu.
     * @param epsilon Dokladnosc dla warunku stopu.
     * @param iterations Ilosc iteracji dla jednej temperatury.
     * @param tries Ilosc prob przeprowadzenia obliczen dla roznych layout`ow poczatkowych.
     */    
    public AnnealingSettings(int layoutSize, double epsilon, int iterations, int tries, int cooling) {
        this.layoutSize = layoutSize;
        this.epsilon = epsilon;
        this.iterations = iterations;
        this.tries = tries;
        this.cooling=cooling;
    }
    
    public int getLayoutSize() {
        return layoutSize;
    }

    public void setLayoutSize(int layoutSize) {
        this.layoutSize = layoutSize;
    }    
    public double getEpsilon() {
        return epsilon;
    }

    public void setEpsilon(double epsilon) {
        this.epsilon = epsilon;
    }

    public int getIterations() {
        return iterations;
    }

    public void setIterations(int iterations) {
        this.iterations = iterations;
    }

    public int getTries() {
        return tries;
    }
   
    public int getCooling() {
        return cooling;
    }
    public void setTries(int tries) {
        this.tries = tries;
    }      
}
